package com.sensor;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import mod_sensors.SNMPStyle;

public class main {
	public static void printHexString( byte[] b) { 
		for (int i = 0; i < b.length; i++) { 
			String hex = Integer.toHexString(b[i] & 0xFF); 
			if (hex.length() == 1) { 
				hex = '0' + hex; 
			}
			System.out.print(hex.toUpperCase() ); 
		}
		System.out.print('\n');
	}
		
	public static void main(String[] args) throws IOException, InterruptedException   {
		// TODO Auto-generated method stub
		int udp_port = 9000;
		int tcp_port = 502;
		int snmp_port = 161;
		
		Broadcast a = new Broadcast(udp_port);
		a.AddNewSensor("192.168.1.54", 10050);
		List<Map> result = a.getDevInfo();
		
		for (Map map : result){
			Iterator iter = map.entrySet().iterator(); 
			while (iter.hasNext()) { 
			    Map.Entry entry = (Map.Entry) iter.next(); 
			    String key = (String) entry.getKey(); 
			    String val = (String) entry.getValue();
			    System.out.println(key + val);
			} 
		}

		//SNMPStyle c = new SNMPStyle();
		
		//c.GetInformation();
		
//		System.out.print(c.GetInformation());
		
		return;
//		RSFFrame f = new RSFFrame();
//		f.SetOpCode(RSFFrame.OpType.QUERY);
//		printHexString(f.GetByteStream());
//		Broadcast a = new Broadcast(udp_port);
////		
//		a.start();
//
////		
//		for (int i = 0; i < 1; i++){
//			try {
//				a.QueryDevices(10030);
//				// �ظ�
//				// a5:5a:04:a0:14:ce:e1:f0:21:95:b8:01:00:00:00
//				
//			} catch (IOException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//		
//		Thread.sleep(3000);
//		
//		ArrayList<Sensor> sensors = a.GetSensors();
//		for (Sensor sensor:sensors){
//			sensor.SetNetworkType(NetType.UDP);
//		}
//		while(true){
//			int cnt = a.GetSensorsCount();
//			if (cnt > 0){
//				System.out.print("Find " + cnt + " sensors!\n");			
//				for (Sensor sensor:sensors){
//					UDPPacket pack = sensor.GetCurrentStatus();					
//					System.out.print("t:" + pack.GetTemperature() + ", h:" + pack.GetHumiduty() + '\n');
//				}	
//			} else {
//				System.out.print("Could not find any Sensor!\n");
//			}
//			
//			Thread.sleep(1000);
//		}
		//InetAddress addr = InetAddress.getByName("192.168.0.32");
		//a.SetDeviceIp(0, addr, 10030);
//		System.out.print("sss");
//			try {
//				a.join();
//			} catch (InterruptedException e1) {
//				// TODO Auto-generated catch block
//				e1.printStackTrace();
//			}
//		try {
//			a.join();
//		} catch (InterruptedException e1) {
//			// TODO Auto-generated catch block
//			e1.printStackTrace();
//		}
		//a.join();
	}

}
